package com.flyco.modules.fenxiao.entity;

import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import com.flyco.poi.excel.annotation.Excel;

/**
 * @Description: 分销员帐号
 * @Author: flyco
 * @Date:   2020-07-07
 * @Version: V1.0
 */
@Data
@TableName("dist_account")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="dist_account对象", description="分销员帐号")
public class DistAccount {
    
	/**id(会员id-partnerid)*/
	@TableId(type = IdType.INPUT)
    @ApiModelProperty(value = "id(会员id-partnerid)")
	private String id;
	/**
	 * 商家id
	 */
	@Excel(name = "商家id", width = 15)
	@ApiModelProperty(value = "商家id")
	private Long partnerId;
	/**会员id*/
	@Excel(name = "会员id", width = 15)
    @ApiModelProperty(value = "会员id")
	private Long memberId;
	/**督导的会员id*/
	@Excel(name = "督导的会员id", width = 15)
    @ApiModelProperty(value = "督导的会员id")
	private Long supervisorMemberId;
	/**1无，2分销员，3导购，4督导*/
	@Excel(name = "1无，2分销员，3导购，4督导", width = 15)
	@ApiModelProperty(value = "1无，2分销员，3导购，4督导")
	private Integer role;
	/**分销员状态， 9完全开放， 1禁用身份（设置后不享受佣金）*/
	@Excel(name = "分销员状态， 9完全开放， 1禁用身份（设置后不享受佣金）", width = 15)
    @ApiModelProperty(value = "分销员状态， 9完全开放， 1禁用身份（设置后不享受佣金）")
	private Integer state;
	/**分销员等级*/
	@Excel(name = "分销员等级", width = 15)
    @ApiModelProperty(value = "分销员等级")
	private Long levelId;
	/**等级开始日期*/
	@Excel(name = "等级开始日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "等级开始日期")
	private Date startTime;
	/**预计等级结束日期*/
	@Excel(name = "预计等级结束日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "预计等级结束日期")
	private Date expirationTime;
	/**等级期内新增成长值*/
	@Excel(name = "等级期内新增成长值", width = 15)
    @ApiModelProperty(value = "等级期内新增成长值")
	private Integer incrementGrowthValue;
	/**期初剩余成长值*/
	@Excel(name = "期初剩余成长值", width = 15)
    @ApiModelProperty(value = "期初剩余成长值")
	private Integer openingGrowthValue;
	/**期初总成长值*/
	@Excel(name = "期初总成长值", width = 15)
    @ApiModelProperty(value = "期初总成长值")
	private Integer openingTotalGrowthValue;
	/**发票方式（1自提供/2飞科代理）*/
	@Excel(name = "发票方式（1自提供/2飞科代理）", width = 15)
    @ApiModelProperty(value = "发票方式（1自提供/2飞科代理）")
	private Integer invoiceSupplyType;
	/**last结算时间点*/
	@Excel(name = "last结算时间点", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "last结算时间点")
	private Date lastSettlementTime;
	/**结算期初结入金*/
	@Excel(name = "结算期初结入金", width = 15)
    @ApiModelProperty(value = "结算期初结入金")
	private java.math.BigDecimal settlementOpeningIncomeAmount;
	/**结算期初可用金*/
	@Excel(name = "结算期初可用金", width = 15)
    @ApiModelProperty(value = "结算期初可用金")
	private java.math.BigDecimal settlementOpeningAvailableAmount;
	/**结算期初已提金*/
	@Excel(name = "结算期初已提金", width = 15)
    @ApiModelProperty(value = "结算期初已提金")
	private java.math.BigDecimal settlementOpeningWithdrawnAmount;
	/**结算期初已抵用金*/
	@Excel(name = "结算期初已抵用金", width = 15)
    @ApiModelProperty(value = "结算期初已抵用金")
	private java.math.BigDecimal settlementOpeningOutgoingsAmount;
	/**结算期内结入金*/
	@Excel(name = "结算期内结入金", width = 15)
    @ApiModelProperty(value = "结算期内结入金")
	private java.math.BigDecimal settlementWithinIncomeAmount;
	/**结算期内已提金*/
	@Excel(name = "结算期内已提金", width = 15)
    @ApiModelProperty(value = "结算期内已提金")
	private java.math.BigDecimal settlementWithinWithdrawnAmount;
	/**结算期内已抵用金*/
	@Excel(name = "结算期内已抵用金", width = 15)
    @ApiModelProperty(value = "结算期内已抵用金")
	private java.math.BigDecimal settlementWithinOutgoingsAmount;
	/**可用金额(不含未结算部分，不含提现中，由于未结算时也提可能为负)*/
	@Excel(name = "可用金额(不含未结算部分，不含提现中，由于未结算时也提可能为负)", width = 15)
    @ApiModelProperty(value = "可用金额(不含未结算部分，不含提现中，由于未结算时也提可能为负)")
	private java.math.BigDecimal availableAmount;
	/**提现中金额*/
	@Excel(name = "提现中金额", width = 15)
    @ApiModelProperty(value = "提现中金额")
	private java.math.BigDecimal withdrawnAmount;
	/**版本号*/
	@Excel(name = "版本号", width = 15)
    @ApiModelProperty(value = "版本号")
	private Integer version;
	/**创建人*/
	@Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
	private String createBy;
	/**创建时间*/
	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
	private Date createTime;
	/**更新人*/
	@Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
	private String updateBy;
	/**更新时间*/
	@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
	private Date updateTime;
}
